(function(KKBus){

    function BusStopController() {
        var self = this;
        
        self.stops = ko.observableArray();
        self.coursesKrk = ko.observableArray();
        self.coursesKat = ko.observableArray();
        
        self.sort = function(left, right) { return left.sequence == right.sequence ? 0 : (left.sequence < right.sequence ? -1 : 1) }           
        
        self.getCourses = function() {
            app.request++;      
            
            self.coursesKrk.removeAll();
            self.coursesKat.removeAll();
            
            KKBus.Ajax.doGet('rest/busstops', function(data, textStatus, jqXHR) {
                var jsData = JSON.parse(data);
                var i = jsData.length;
                
               
                                            
                while(i--) {                    
                    var currentArrayCourses = null;
                    if (jsData[i].direction == "KRAKOW_KATOWICE") {
                        currentArrayCourses = self.coursesKrk;                        
                    } else {
                        currentArrayCourses = self.coursesKat;
                    }
                    
                    var currentBusStop = new KKBus.BusStopModel(jsData[i].id, jsData[i].name,jsData[i].direction,
                        jsData[i].price, jsData[i].distance, jsData[i].sequence);
                    
                    currentArrayCourses.push(currentBusStop);
                    
                                                            
                    var j = jsData[i].departureTimes.length;
                    while(j--) {
                        var ref = jsData[i].departureTimes[j];
                        currentBusStop.departureTimes.push(new KKBus.DepartureTime(ref.id, ref.time, 
                            ref.attributes, ref.sequence, ref.busStopId));  
                    } 
                    currentBusStop.departureTimes.sort(self.sort);
                    
                }
                              
                self.coursesKrk.sort(self.sort);
                self.coursesKat.sort(self.sort);
                
                app.request--;
                setTimeout(function() { app.loadTemplate(); }, 1000);
                
                        
            });   
            
            
        };
        
       
        self.viewCourses0 = ko.observable(false);
        self.viewCourses1 = ko.observable(false);
        self.viewCourses2 = ko.observable(false);
        
        self.showCourses = function() {
            
            if($('#formKierunek').val() == 0){
                self.viewCourses0(true);
                self.viewCourses1(false);
                self.viewCourses2(false);
                //setTimeout(function() { self.viewCourses0(false); }, 5000);             
                
                
            } else {
               
                self.viewCourses1(true);
                self.viewCourses0(false);
                              
             
            }
            
            
        };
        
         self.deleteBusStop = function(index, direction, busStopId) {
            if (direction == "KRAKOW_KATOWICE") {
                self.coursesKrk.remove(self.coursesKrk()[index]);
            } else {
                self.coursesKat.remove(self.coursesKat()[index]);
            }
         KKBus.Ajax.doDelete('rest/busstop/'+busStopId, function(result,data, textStatus, jqXHR) {
              if (result == "DELETED") { 
              }             
        });   
    };
    
    
    self.validation = ko.observable(false);
    self.errorMessage = ko.observable("Blad");
    self.success = ko.observable(false);  
    
    
   self.addBusStop = function() {
        
    var busstop = JSON.stringify({
      direction: $('#formDirection').val(),
      name: $('#formName').val(),
      price: $('#formPrice').val(),
      distance: $('#formDistance').val(),
      sequence: $('#formSequence').val()
                    
       });
         
//       if(KKBus.Validation.length($('#formName').val())
//          && KKBus.Validation.length($('#formPrice').val())
//          && KKBus.Validation.length($('#formDistance').val())
//          && KKBus.Validation.length($('#formSequence').val())){ 
//             
//             if(KKBus.Validation.koszt($('#formPrice').val())){
//               
//               if(KKBus.Validation.word($('#formName').val())){
//                 
//                if(KKBus.Validation.dys($('#formDistance').val())){
//                    
//                
//                    if(KKBus.Validation.seq($('#formSequence').val())){
               
                   
                                                KKBus.Ajax.doPost('rest/busstop', busstop, function(result, textStatus, jqXHR) {
                                                     if (result == "ADDED") {
                      
                                                      
                                                        self.success(true);
                                                         $('#formName').val(' ');
                                                        $('#formPrice').val(' ');
                                                        $('#formDistance').val(' ');
                                                        $('#formSequence').val(' ');
                                                        setTimeout(function() {
                                                            
                                                        
                                            
                                                        self.success(false);
                                                        }, 3000);
                                                        
                                                        
                                                        var temp = JSON.parse(busstop);
                                                         
                                                        var busStopToAdd = new KKBus.BusStopModel(temp.id, temp.name,temp.direction,temp.distance, temp.price, temp.sequence);
                    
                                                        self.coursesKrk.push(busStopToAdd);
                      
                                                      }
                                                  });
//                        }else{
//                            
//                            self.validation(true);
//                            self.errorMessage("Błędny format danych dotyczących sekwencji!");
//                            setTimeout(function() { self.validation(false); }, 3000);
//                        
//                        }
//                    }else{
//                     
//                     self.validation(true);
//                     self.errorMessage("Błędny format danych dotyczących dystansu!");
//                     setTimeout(function() { self.validation(false); }, 3000);
//                                                
//                   };
//                   
//               }else{
//                 
//                 self.validation(true);
//                 self.errorMessage("Błędnie wprowadzona nazwa przystanku!");
//                 setTimeout(function() { self.validation(false); }, 3000); 
//                 
//               };
//                                                         
//             }else{
//                 
//                 self.validation(true);
//                 self.errorMessage("Błędny format danych dotyczących ceny!");
//                 setTimeout(function() { self.validation(false); }, 3000);
//                 
//             };
//                                            
//           }else{
//               
//               self.validation(true);
//               self.errorMessage("Puste pola!");
//               setTimeout(function() { self.validation(false); }, 3000);
//              
//          };
         
    };


      self.addBusStopDeparture = function() {
        
    var busstopDeparture = JSON.stringify({
      busStopId: $('#formbusStopId').val(),
      time: $('#formtimetime').val(),
      attributes: "F2",
      sequence:50        
      
                    
       });
         

                   
                                                KKBus.Ajax.doPost('/rest/departuretime', busstopDeparture, function(result, textStatus, jqXHR) {
                                                     if (result == "ADDED") {
                      
                                                      
                                                                                                         
                                                        
//                                                        var temp = JSON.parse(busstopDeparture);
//                                                         
//                                                        var busStopToAdd = new KKBus.DepartureTime(temp.busStopId, temp. time);
//                    
//                                                        self.busstopDeparture.push(busStopToAdd);
                      
                                                      }
                                                  });

         
    };


    }

    KKBus.BusStopController = BusStopController;
    
}(window.KKBus));

